﻿var piso;
var box3;
$(document).ready(main);


function main() {

    $("#RegBtnRegistrar").click(registrarAreaComun);
    $("#BscBtnBuscar").click(buscarAreaComun);
    $("#RegBtnCancelar").click(menuAreaComun);
    $("#BscBtnCancelar").click(menuAreaComun);
    $("#BscBtnEliminar").click(eliminarAreaComun);
    $("#BscBtnEliminar").hide();
    $("#BscBtnModificar").hide();
    $("#Buscar").hide();
    $("#Eliminar").hide();
    $("#Modificar").hide();
    $("#Registrar").hide();

    var cargoAreaComun = sessionStorage.getItem("cargo");

    if (cargoAreaComun == 1) {
        $("#Buscar").show();
        $("#Eliminar").show();
        $("#Modificar").show();
        $("#Registrar").show();
    }

    if (cargoAreaComun == 3) {
        $("#Buscar").show();
        $("#Eliminar").show();
        $("#Modificar").show();
        $("#Registrar").show();
    }

    if (cargoAreaComun == 4) {
        $("#Buscar").show();
        $("#Eliminar").show();
        $("#Modificar").show();
        $("#Registrar").show();
    }
    cargarEdificios();
    cargarTiposAreaComun();
}

function refrescar() {

    jQuery("#BscSctEdificio option").each(function () {
        jQuery(this).attr("selected", "selected");
        if (jQuery(this).val() == "") {
            jQuery(this).attr("selected", "selected");
            return false;
        }
    });

    jQuery("#BscSctTipo option").each(function () {
        if (jQuery(this).val() == "") {
            jQuery(this).attr("selected", "selected");
            return false;
        }
    });

    jQuery("#BscSctPiso option").each(function () {
        jQuery(this).attr("selected", "selected");
        if (jQuery(this).val() == "") {
            jQuery(this).attr("selected", "selected");
            return false;
        }
    });

    document.getElementById("BscTbxUbicacion").value = "";

    $("input:radio[name='BscRbnReservable']")[0].checked = false;
    $("input:radio[name='BscRbnReservable']")[1].checked = false;

}

function cargarPisosModificar() {
    var enviar = {
        Nombre: "",
        IdEdificio: $("#ModSctEdificio").val()
    }

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "cargarPisos",
        success: function (data) {

            var lista = data.listaPiso;

            var num_pisos = lista[0];
            var num_sotanos = lista[1];

            $("#ModSctPiso").find('option').remove().end().append("<option selected=\"selected\"></option>");

            for (var i = 1; i <= num_pisos; i++) {
                $("#ModSctPiso").append("<option value = \"P" + i + "\">P" + i + "</option>");
            }
            if (num_sotanos != 0) {
                for (var j = 1; j <= num_sotanos; j++) {
                    $("#ModSctPiso").append("<option value = \"S" + j + "\">S" + j + "</option>");
                }
            }
            jQuery("#ModSctPiso option").each(function () {
                if (jQuery(this).val() == piso) {
                    jQuery(this).attr("selected", "selected");
                    return false;
                }
            }); 
        }
    });
}

function cargarPisosBuscar() {
    var enviar = {
        Nombre: "",
        IdEdificio: $("#BscSctEdificio").val()
    }

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "cargarPisos",
        success: function (data) {

            var lista = data.listaPiso;

            var num_pisos = lista[0];
            var num_sotanos = lista[1];

            $("#BscSctPiso").find('option').remove().end().append("<option></option>");

            for (var i = 1; i <= num_pisos; i++) {
                $("#BscSctPiso").append("<option value = \"P" + i + "\">P" + i + "</option>");
            }
            if (num_sotanos != 0) {
                for (var j = 1; j <= num_sotanos; j++) {
                    $("#BscSctPiso").append("<option value = \"S" + j + "\">S" + j + "</option>");
                }
            }
        }
    });
}


function cargarPisosRegistrar() {
    var enviar = {
        Nombre: "",
        IdEdificio: $("#RegSctEdificio").val()
    }
    
    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "cargarPisos",
        success: function (data) {

            var lista = data.listaPiso;

            var num_pisos = lista[0];
            var num_sotanos = lista[1];

            $("#RegSctPiso").find('option').remove().end().append("<option></option>");

            for (var i = 1; i <= num_pisos; i++) {
                $("#RegSctPiso").append("<option value = \"P" + i + "\">P" + i + "</option>");
            }
            if (num_sotanos != 0) {
                for (var j = 1; j <= num_sotanos; j++) {
                    $("#RegSctPiso").append("<option value = \"S" + j + "\">S" + j + "</option>");
                }
            }
        }
    });
}

function cargarEdificios() {
    var enviar = {
        Nombre: "",
        IdEdificio: ""
    }

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "cargarEdificios",
        success: function (data) {

            var localEdificio = sessionStorage.getItem("edificio");

            var lista = data.listaEdificio;

            $("#RegSctEdificio").find('option').remove().end().append("<option></option>");
            $.each(lista, function (i, item) {
                $("#RegSctEdificio").append("<option value = \"" + item.IdEdificio + "\">" + item.Nombre + "</option>");
            });

            $("#BscSctEdificio").find('option').remove().end().append("<option></option>");
            $.each(lista, function (i, item) {
                $("#BscSctEdificio").append("<option value = \"" + item.IdEdificio + "\">" + item.Nombre + "</option>");
            });

            $("#ModSctEdificio").find('option').remove().end().append("<option></option>");
            $.each(lista, function (i, item) {
                $("#ModSctEdificio").append("<option value = \"" + item.IdEdificio + "\">" + item.Nombre + "</option>");
            });

            if (localEdificio != 1 && localEdificio !=2) {
                jQuery("#RegSctEdificio option").each(function () {
                    if (jQuery(this).val() == localEdificio) {
                        jQuery(this).attr("selected", "selected");
                        return false;
                    }
                });
                $("#RegSctEdificio")
                .attr('disabled', 'disabled')
                .css({
                    "color": "red",
                    "background-color": "black",
                    "border-style": "solid"
                });

                jQuery("#BscSctEdificio option").each(function () {
                    if (jQuery(this).val() == localEdificio) {
                        jQuery(this).attr("selected", "selected");
                        return false;
                    }
                });
                $("#BscSctEdificio")
                .attr('disabled', 'disabled')
                .css({
                    "color": "red",
                    "background-color": "black",
                    "border-style": "solid"
                });

                jQuery("#ModSctEdificio option").each(function () {
                    if (jQuery(this).val() == localEdificio) {
                        jQuery(this).attr("selected", "selected");
                        return false;
                    }
                });
                $("#ModSctEdificio")
                            .attr('disabled', 'disabled')
                            .css({
                                "color": "white",
                                "background-color": "black",
                                "border-style": "solid"
                            });

            }
        }
    });
}

function cargarTiposAreaComun() {
    var enviar = {
        NombreArea: "",
        Estado: 0
    }

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "cargarTiposAreaComun",
        success: function (data) {

            var lista = data.listaTipoAreaComun;

            

            $("#RegSctTipo").find('option').remove().end().append("<option></option>");
            $.each(lista, function (i, item) {
                $("#RegSctTipo").append("<option value = \"" + item.NombreArea + "\">" + item.NombreArea + "</option>");
            });

            $("#BscSctTipo").find('option').remove().end().append("<option></option>");
            $.each(lista, function (i, item) {
                $("#BscSctTipo").append("<option value = \"" + item.NombreArea + "\">" + item.NombreArea + "</option>");
            });

            $("#ModSctTipo").find('option').remove().end().append("<option></option>");
            $.each(lista, function (i, item) {
                $("#ModSctTipo").append("<option value = \"" + item.NombreArea + "\">" + item.NombreArea + "</option>");
            });
        }
    });
}
function menuAreaComun() {
    window.history.back();
}

function vaciarErroresRegistrar() {
    document.getElementById("RegLblErrorArea").innerHTML = "";
    document.getElementById("RegLblErrorUbicacion").innerHTML = "";
}

function vaciarErroresModificar() {
    document.getElementById("ModLblErrorArea").innerHTML = "";
    document.getElementById("ModLblErrorUbicacion").innerHTML = "";
}

function registrarAreaComun() {

    var enviarsela = {
        IdEdificio: $("#RegSctEdificio").val(),
        NombreArea: $("#RegSctTipo").val(),
        Piso: $("#RegSctPiso").val(),
        Area: $("#RegTbxArea").attr("value"),
        Ubicacion: $("#RegTbxUbicacion").attr("value"),
        EsReservable: $("input[name='RegRbnReservable']:checked").val()
    }

    fv = new formValidator();
    vaciarErroresRegistrar();

    if (!fv.isSelectedSelect(document.getElementById("RegSctEdificio"))) {
        fv.raiseError("");
    }
    if (!fv.isSelectedSelect(document.getElementById("RegSctTipo"))) {
        fv.raiseError("");
    }
    if (!fv.isSelectedSelect(document.getElementById("RegSctPiso"))) {
        fv.raiseError("");
    }
    if (fv.isEmpty(document.getElementById("RegTbxArea").value)) {
        fv.raiseError("");
    }
    else {
        if (isNaN(document.getElementById("RegTbxArea").value)) {
            fv.raiseError("");
            document.getElementById("RegLblErrorArea").innerHTML = "Solo Números";
        }
    }
    if (fv.isEmpty(document.getElementById("RegTbxUbicacion").value)) {
        document.getElementById("RegLblErrorUbicacion").innerHTML = "";
    }
    else {
        if (!fv.isAlphaNumeric(document.getElementById("RegTbxUbicacion").value)) {
            fv.raiseError("");
            document.getElementById("RegLblErrorUbicacion").innerHTML = "Solo Números y Letras";
        }
    }

    if (!fv.isCheckedRadioButton($("input:radio[name='RegRbnReservable']"))) {
        fv.raiseError("");
    }

    if (fv.numErrors() < 1) {

        var jsonData = JSON.stringify(enviarsela);

        $.ajax({
            type: "POST",
            data: jsonData,
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            url: "registrarAreaComun",
            beforeSend: esperarRegistro(),
            success: llegadaRegistro
        });
        return true;
    }
    else {
        fv.displayErrors();
        return false;
    }
}

function esperarRegistro(data) {
    box3 = new ajaxLoader($(".box-3").parent().parent(), { classOveride: 'blue-loader', bgColor: '#000' });
}


function llegadaRegistro(data) {
    box3.remove();
    window.history.back();
    alert(data.me);    
}

function buscarAreaComun() {

    var enviar = {
        IdEdificio: $("#BscSctEdificio").val(),
        NombreArea: $("#BscSctTipo").val(),
        Piso: $("#BscSctPiso").val(),
        Ubicacion: $("#BscTbxUbicacion").attr("value"),
        EsReservable: $("input[name='BscRbnReservable']:checked").val()
    }

    var jsonData = JSON.stringify(enviar);

    $.ajax({
        type: "POST",
        data: jsonData,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        url: "buscarAreaComun",
        beforeSend: esperarLista(),
        success: llegadaLista
    });
}

function esperarLista() {
    box3 = new ajaxLoader($(".box-3").parent().parent(), { classOveride: 'blue-loader', bgColor: '#000' });
}

function llegadaLista(data) {

    var lista = data.listaAreaComun;


    var escritor = "";

    if (lista.length > 0) {
        escritor += "<table><thead><tr><th></th>" +
                    "<th style=\"display:none\">IdEdificio</th>" +
                    "<th>Edificio</th>" +
                    "<th style=\"display:none\">IdAreaComun</th>" +
                    "<th>Área Común</th>" +
                    "<th>Piso</th>" +
                    "<th>Área</th>" +
                    "<th>Ubicación</th>" +
                    "<th>Reservable</th>" +
                    "</tr></thead>";

        escritor += "<tbody id='BscTblResultados'>";

        $.each(lista, function (i, item) {

            escritor += "<tr>";

            escritor += '<td>' + "<input id=" + "\"RadioButton1\" " + "name=" + "\"R1\" " + "type=" + "\"radio\" " + "value=" + "\"1\"" + "/>" + '</td>';
            escritor += '<td style=\"display:none\">' + item.IdEdificio + '</td>';
            escritor += '<td>' + item.NombreEdificio + '</td>';
            escritor += '<td style=\"display:none\">' + item.IdAreaComun + '</td>';
            escritor += '<td>' + item.NombreArea + '</td>';
            escritor += '<td>' + item.Piso + '</td>';
            escritor += '<td>' + item.Area + '</td>';
            escritor += '<td>' + item.Ubicacion + '</td>';
            if (item.EsReservable === 1) {
                escritor += '<td>' + "Si" + '</td>';
            }
            else {
                escritor += '<td>' + "No" + '</td>';
            }
            escritor += "</tr>";
        });

        escritor += "</tbody>";

        escritor += "</table>";

        $("#BscBtnEliminar").show();
        $("#BscBtnModificar").show();

        $("#tablaDinamica").html(escritor);

        if (lista.length > 0) {
            $("#holder").jPages({
                containerID: "BscTblResultados",
                perPage: 10,
                delay: 20,
                startPage: 1,
                midRange: 3,
                animation: "flipInY"
            });
            $("#holder").show();
        }
    }

    else{
        escritor += "<p>No se encontró ninguna coincidencia</p>";
        $("#tablaDinamica").html(escritor);
        $("#holder").hide();
        $("#BscBtnEliminar").hide();
        $("#BscBtnModificar").hide();
    }

    box3.remove();

}

function eliminarAreaComun() {
    if ($("input:radio[name='R1']").is(":checked")) {
        var id_area_comun,nombre_edificio,NombreArea, piso;
        $("input:radio[name='R1']:checked").parents("tr").children("td").each(function (index2) {
            switch (index2) {
                case 2:
                    nombre_edificio = $(this).text();
                    break;
                case 3:
                    id_area_comun = $(this).text();
                    break;
                case 4:
                    NombreArea = $(this).text();
                    break;
                case 5:
                    piso = $(this).text();
                    break;
            }
        })

        var question = confirm("Desea eliminar el objeto seleccionado");

        if (question != 0) {
            var enviar = {
                IdAreaComun: id_area_comun,
                NombreArea: NombreArea,
                NombreEdificio: nombre_edificio,
                Piso: piso
            }

            var jsonData = JSON.stringify(enviar);

            $.ajax({
                type: "POST",
                data: jsonData,
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                url: "eliminarAreaComun",
                success: llegadaEliminar
            });
        }
    }
    else {
        alert("Debe seleccionar una fila");
    }
}


function llegadaEliminar(data) {
    alert(data.me);
    buscarAreaComun();
}

$(function () {
    var tips = $(".validateTips"), allFields = $([]);

    function updateTips(t) {
        tips
                .text(t)
                .addClass("ui-state-highlight");
        setTimeout(function () {
            tips.removeClass("ui-state-highlight", 1500);
        }, 500);
    }

    $("#dialog-form").dialog({
        autoOpen: false,
        height: 600,
        width: 850,
        modal: true,
        buttons: {
            Aceptar: function () {
                var enviar = {
                    IdEdificio: $("#ModSctEdificio").val(),
                    NombreArea: $("#ModSctTipo").val(),
                    Piso: $("#ModSctPiso").val(),
                    Area: $("#ModTbxArea").attr("value"),
                    Ubicacion: $("#ModTbxUbicacion").attr("value"),
                    EsReservable: $("input[name='ModRbnReservable']:checked").val(),
                    IdAreaComun: $("#ModTbxIdAreaComun").val()
                }

                fv = new formValidator();
                vaciarErroresModificar();

                if (!fv.isSelectedSelect(document.getElementById("ModSctEdificio"))) {
                    fv.raiseError("");
                }
                if (!fv.isSelectedSelect(document.getElementById("ModSctTipo"))) {
                    fv.raiseError("");
                }
                if (!fv.isSelectedSelect(document.getElementById("ModSctPiso"))) {
                    fv.raiseError("");
                }
                if (fv.isEmpty(document.getElementById("ModTbxArea").value)) {
                    document.getElementById("ModTbxArea").value = 0;
                }
                else {
                    if (isNaN(document.getElementById("ModTbxArea").value)) {
                        fv.raiseError("");
                        document.getElementById("ModLblErrorArea").innerHTML = "Solo Números";
                        document.getElementById("ModTbxArea").value = 0;
                    }
                }
                if (fv.isEmpty(document.getElementById("ModTbxUbicacion").value)) {
                    document.getElementById("ModLblErrorUbicacion").innerHTML = "";
                }
                else {
                    if (!fv.isAlphaNumeric(document.getElementById("ModTbxUbicacion").value)) {
                        fv.raiseError("");
                        document.getElementById("ModLblErrorUbicacion").innerHTML = "Solo Números y Letras";
                    }
                }

                if (!fv.isCheckedRadioButton($("input:radio[name='ModRbnReservable']"))) {
                    fv.raiseError("");
                }

                if (fv.numErrors() === 0) {
                    var jsonData = JSON.stringify(enviar);

                    $.ajax({
                        type: "POST",
                        data: jsonData,
                        dataType: "json",
                        contentType: "application/json; charset=utf-8",
                        url: "modificarAreaComun",
                        success: function (data) {
                            alert(data.me);
                            buscarAreaComun();
                        }
                       });

                       $(this).dialog("close");
                   }
                   else {
                       fv.displayErrors();
                   }

               },
               Cancelar: function () {
                   $(this).dialog("close");
               }
           },
        close: function () {
            allFields.val("").removeClass("ui-state-error");
        }
    });

    $("#BscBtnModificar").click(function () {
        if ($("input:radio[name='R1']").is(":checked")) {
            $("#dialog-form").dialog("open");
            var bValid = true;
            allFields.removeClass("ui-state-error");
            if (bValid) {
                if ($("input:radio[name='R1']:checked")) {
                    var id_area_comun, id_edificio, NombreArea, area, ubicacion, es_reservable;

                    $("input:radio[name='R1']:checked").parents("tr").children("td").each(function (index2) {
                        switch (index2) {
                            case 1:
                                id_edificio = $(this).text();
                                break;
                            case 3:
                                id_area_comun = $(this).text();
                                break;
                            case 4:
                                NombreArea = $(this).text();
                                break;
                            case 5:
                                piso = $(this).text();
                                break;
                            case 6:
                                area = $(this).text();
                                break;
                            case 7:
                                ubicacion = $(this).text();
                                break;
                            case 8:
                                es_reservable = $(this).text();
                                if (es_reservable === "Si") {
                                    es_reservable = "1";
                                }
                                else {
                                    es_reservable = "2";
                                }
                                break;
                        }
                    })

                    jQuery("#ModSctEdificio option").each(function () {
                        if (jQuery(this).val() == id_edificio) {
                            jQuery(this).attr("selected", "selected");
                            return false;
                        }
                    });

                    cargarPisosModificar();

                    jQuery("#ModSctTipo option").each(function () {
                        if (jQuery(this).val() == NombreArea) {
                            jQuery(this).attr("selected", "selected");
                            return false;
                        }
                    });

                    document.getElementById("ModTbxIdAreaComun").value = id_area_comun;
                    document.getElementById("ModTbxArea").value = area;
                    document.getElementById("ModTbxUbicacion").value = ubicacion;

                    if ($("input:radio[name='ModRbnReservable']")[0].value === es_reservable) {
                        $("input:radio[name='ModRbnReservable']")[0].checked = true;
                    }
                    else {
                        $("input:radio[name='ModRbnReservable']")[1].checked = true;
                    }

                    

                }
            }
        }
        else {
            alert("Debe seleccionar una fila");
        }
    });

});